The present invention relates generally to computer systems, and more particularly to methods for processing natural language input from users of computer systems.
Computerized personal organizers are becoming increasingly popular. They perform such functions as keeping a calendar, an address book, a to-do list, etc. While these functions can be provided by conventional computer systems, they are more conveniently provided by personal organizers which are relatively inexpensive, small, and lightweight (i.e. portable). Personal organizers are available from such companies as Sharp and Casio of Japan.
A relatively new form of computer, the pen-based computer system, holds forth the promise of a marriage of the power of a general purpose computer with the functionality and small size of a personal organizer. A pen-based computer system is typically a small, hand-held computer where the primary method for inputting data includes a "pen" or stylus. A pen-based computer system is commonly housed in a generally rectangular enclosure, and has a dual-function display assembly providing a viewing screen along one of the planar sides of the enclosure. The dual-function display assembly serves as both an input device and an output device. When operating as an input device, the display assembly senses the position of the tip of a stylus on the viewing screen and provides this positional information to the computer's central processing unit (CPU). Some display assemblies can also sense the pressure of the stylus on the screen to provide further information to the CPU. When operating as an output device, the display assembly presents computer-generated images on the screen.
The dual-function displays of pen-based computer systems permit users to operate the computers as computerized notepads. For example, graphical images can be input into the pen-based computer by merely moving the stylus across the surface of the screen. As the CPU senses the position and movement of the stylus, it generates a corresponding image on the screen to create the illusion that the stylus is drawing the image directly upon the screen, i.e. that the stylus is "inking" an image on the screen. With suitable recognition software, the "ink" can be identified as text and numeric information.
Computer systems, including pen-based computer systems, can also incorporate speech recognition. Although still mostly in the developmental stage, speech recognition has many potential uses in computer systems. For example, in a portable pen-based computer, speech input and recognition can be used to conveniently record dictated messages or other spoken documents and to present the dictated words as an electronic text document for editing, printing, faxing, etc. or to input commands into the computer system.
Stylus, speech, keyboard, and other forms of input can take the form of "natural language," i.e. an "utterance." Natural language is written or spoken input that is in a natural form that a person would use as if speaking or writing to another person. Non-natural language would be language, such as computer commands or programs, which is constrained by a limited syntax, structure, and/or scope.
Natural language input permits a user to easily interface with a computer system using wellknown language. One area in computer systems which is particularly well-adapted for natural language input is computerized assistance. Computers systems that use computerized assistance deduce or hypothesize a user's intent and automatically provide a service based on the deduced intent. For example, a tasks such as printing a document or scheduling an appointment can be implemented by a computer system by deducing information from a user's inputs or preferences. Natural language input allows a user to quickly specify a service or task to be implemented using a complex form and thus is well suited for use with computerized assistance.
The recognition of natural language by computer systems has been difficult due to the complex and shifting "rules" of human natural language. A user may input a natural language phrase, such as, "meeting with Bill on Tuesday at lunch" to instruct the computer system to schedule the meeting in a calendar application program. The computer system typically recognizes the individual words to recognize the meaning of the entire phrase. However, by recognizing small portions of the input phrase separately, a complete, overall meaning for the phrase is often incorrect, inaccurate, or incomplete.
Natural language input has been typically processed using one of several methods. A natural phrase or string can be matched to a known phrase in a phrase lexicon used by the computer. A long command is typically processed by matching individual words or smaller phrases to items in the lexicon. Another method used to process natural language is to examine parts of the input phrase for a standard pattern. For example, a number including a colon and followed by "am" or "pm" fits the pattern of a phrase indicating time. A different method used to process natural language is to query a database that stores a large number of phrases and match a phrase to one or more items stored in the database.
The abovementioned processes have typically been used with a fixed set of rules to interpret natural language. An a priori specification of known linguistic structures and their meaning is used to perform semantic interpretation. Each of the abovementioned processes has limitations in versatility and the time required to match a phrase. Natural language processing of the prior art has thus been inefficient and rigid in its ability to recognize the meaning of natural language utterances.
What is needed is a natural language processor that will quickly and accurately identify and map natural language input phrases. What is further needed is a natural language processor that identifies phrases according to a dynamic set of rules and data.